<?php  if (!defined('BASEPATH')) exit('No direct script access allowed');

/**
 * 扩展核心语言类库
 *
 * 复写line()方法，使其支持直接读取语言文件以及取值
 *
 * 例1（有冒号的情况）：
 * $line = $this->lang->line('form_validation:required');
 * 等价于：
 * $this->lang->load('form_validation');
 * $line = $this->land->line('required');
 * if (!$line) $line = 'required';
 *
 * 例2（无冒号的情况）：
 * $this->lang->line('success');
 * 等价于：
 * $this->lang->load('common');
 * $line = $this->land->line('success')
 * if (!$line) $line = 'success';
 */
class MY_Lang extends CI_Lang {

    /**
     * Fetch a single line of text from the language array
     *
     * @access public
     * @param string|array $line the language line
     * @return string
     */
    public function line($line = '') {
        $param = array();
        if (is_array($line) && !empty($line)) {
            $str = $line[0];
            $param = $line[1];
        } else {
            $str = $line;
        }

        //如果不存在冒号则试着读取公共的语言文件
        if (strpos($str, ':') === false) {
            $this->load('common');
            $_str = parent::line($str);
        } else {
            list($file, $key) = explode(':', $str, 2);
            $file = strtolower($file);
            $this->load($file);
            $_str = parent::line($key);
        }

        //参数替换
        foreach ($param as $key => $val) {
            $_str = str_replace($key, $val, $_str);
        }

        //如果没有找到，则返回自身（为了区别是否读取了语言文件, 这里前后加上##）
        if (!$_str) $_str = '##' . $str . '##';

        return $_str;
    }
}
// END Language Class

/* End of file Lang.php */
/* Location: ./system/core/Lang.php */
